package com.sky.context;

/**
 * 一个用于在多线程环境下存储和获取当前线程特定数据的工具类。
 * 使用ThreadLocal来实现，确保每个线程都可以独立地访问自己的数据副本，而不会受到其他线程的干扰。
 */
public class BaseContext {
    //通过静态的threadLocal对象创建一个线程局部变量，用于存储Long类型的数据。
    public static ThreadLocal<Long> threadLocal = new ThreadLocal<>();
    //setCurrentId方法用于设置当前线程的id，将id值存储在threadLocal中。
    public static void setCurrentId(Long id) {
        threadLocal.set(id);
    }
    //getCurrentId方法用于获取当前线程的id，在需要使用id的地方可以调用该方法获取。
    public static Long getCurrentId() {
        return threadLocal.get();
    }
    //removeCurrentId方法用于移除当前线程的id，释放资源。
    public static void removeCurrentId() {
        threadLocal.remove();
    }

}
